#include "TextButton.h"
#include "..\Managers\RenderManager.h"
#include "..\Engines\RenderEngine.h"

TextButton::TextButton(const std::string& p_string, const std::string& p_font, const vn::Color& p_idle, const vn::Color& p_active, unsigned int p_view, float p_layer) : 
	m_idle(p_idle), m_active(p_active)
{
	m_text = RenderManager::getSingleton().getRenderEngine()->createText(p_view, p_font, p_string, p_layer);
	vn::FloatRect rect = m_text->getLocalBounds();
	m_text->setOrigin(vn::Vector2(rect.w * 0.5f, rect.h * 0.5f));
	m_text->setColor(p_idle);
}


TextButton::~TextButton(void)
{
	RenderManager::getSingleton().getRenderEngine()->destroyText(m_text);
}

void TextButton::update()
{

}

void TextButton::setActive(bool p_value)
{
	if (!p_value)
	{
		m_text->setColor(m_idle);
	}
	else if (p_value)
	{
		m_text->setColor(m_active);
	}
}

void TextButton::setPosition(const vn::Vector2& p_position)
{
	Button::setPosition(p_position);
	m_text->setPosition(p_position);
}

void TextButton::setDoRender(bool p_value)
{
	m_text->setDoRender(p_value);
}